package com.yequan.leetcode.array.isrectangleoverlap;

/**
 * //矩形以列表 [x1, y1, x2, y2] 的形式表示，其中 (x1, y1) 为左下角的坐标，(x2, y2) 是右上角的坐标。
 * //
 * // 如果相交的面积为正，则称两矩形重叠。需要明确的是，只在角或边接触的两个矩形不构成重叠。
 * //
 * // 给出两个矩形，判断它们是否重叠并返回结果。
 * //
 * // 示例 1：
 * //
 * // 输入：rec1 = [0,0,2,2], rec2 = [1,1,3,3]
 * //输出：true
 * //
 * //
 * // 示例 2：
 * //
 * // 输入：rec1 = [0,0,1,1], rec2 = [1,0,2,1]
 * //输出：false
 * //
 * //
 * // 说明：
 * //
 * //
 * // 两个矩形 rec1 和 rec2 都以含有四个整数的列表的形式给出。
 * // 矩形中的所有坐标都处于 -10^9 和 10^9 之间。
 * //
 * // Related Topics 数学
 *
 * @author : Administrator
 * @date : 2020/3/18
 */
public class IsRectangleOverlap {
    public static void main(String[] args) {
        int[] rec1 = {0, 0, 2, 2};
        int[] rec2 = {1, 1, 3, 3};
        int[] rec3 = {0, 0, 1, 1};
        int[] rec4 = {1, 0, 2, 1};
        IsRectangleOverlap isRectangleOverlap = new IsRectangleOverlap();
        boolean rectangleOverlap = isRectangleOverlap.isRectangleOverlap2(rec3, rec4);
        System.out.println(rectangleOverlap);
    }

    public boolean isRectangleOverlap1(int[] rec1, int[] rec2) {
        return !(rec1[2] <= rec2[0]
                || rec2[2] <= rec1[0]
                || rec1[3] <= rec2[1]
                || rec2[3] <= rec1[1]);
    }

    /**
     * 检查区域
     *
     * @param rec1
     * @param rec2
     * @return
     */
    public boolean isRectangleOverlap2(int[] rec1, int[] rec2) {
        return Math.min(rec1[2], rec2[2]) > Math.max(rec1[0], rec2[0])
                && Math.min(rec1[3], rec2[3]) > Math.max(rec1[1], rec2[1]);
    }
}
